Skip to content

centos7 安装 nacos 操作

注意一下和 springcloud 的版本对应

版本选择可以看一下这些文档

单机环境

生产环境建议使用集群模式部署,单机模式仅适合开发和测试

Docker 的方式安装 Nacos

  • Nacos:2.x(推荐)
  • 模式:Standalone(单机模式)

拉取镜像

#拉取镜像,指定版本
docker pull nacos/nacos-server:v2.3.0
#数据持久化
mkdir -p /opt/nacos/{conf,data,logs}

#(可选)准备自定义配置文件【这里跳过】后面还是使用了自定义配置文件,启动参数中指定了,要不然你改一下启动参数

#查看镜像
docker images | grep nacos-server

启动 Nacos (单机模式)

docker run -d \
--name nacos \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=standalone \
-v /opt/nacos/conf:/home/nacos/conf \
-v /opt/nacos/data:/home/nacos/data \
-v /opt/nacos/logs:/home/nacos/logs \
nacos/nacos-server:v2.3.0

📌 Nacos 2.x 必须开放 9848 / 9849,否则服务注册异常。

端口说明(非常重要)

端口作用
8848Web 控制台 / HTTP API
9848gRPC(客户端通信)
9849gRPC(集群通信)
访问 Nacos 控制台
http://服务器IP:8848/nacos

指定配置文件

上面参数中指定了配置文件,这里实际启动报错了

Logging system failed to initialize using configuration from '/home/nacos/conf/nacos-logback.xml'

java.io.FileNotFoundException:
 /home/nacos/conf/nacos-logback.xml (No such file or directory)

宿主机目录 /opt/nacos/conf并不存在. nacos-logback.xml 文件

从官方镜像中拷贝默认日志配置

#拷贝配置
docker run --rm nacos/nacos-server:v2.3.0 \
cat /home/nacos/conf/nacos-logback.xml \
> /opt/nacos/conf/nacos-logback.xml

#确认文件存在
ls -l /opt/nacos/conf/nacos-logback.xml


#重启容器
docker restart nacos

重写覆盖一下文件(可选)

在执行这里的时候,实际遇到了拷贝写入文件的时候出现不在预期中的字符,因此这里进行了重写操作

cat > /opt/nacos/conf/nacos-logback.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">

    <property name="LOG_HOME" value="/home/nacos/logs"/>
    <property name="APP_NAME" value="nacos"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${APP_NAME}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${APP_NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
    </root>

</configuration>
EOF
#重启容器
docker restart nacos

鉴权操作

⬆️ 上面这种方式使用的话,由于没有 application.properties 配置文件,默认鉴权是关闭的,因此访问是不需要账户密码的。

如果要开启鉴权的话,需要进行下面的操作

默认账号密码: nacos/nacos

#拷贝官方文件
docker create --name tmp-nacos nacos/nacos-server:v2.3.0
docker cp tmp-nacos:/home/nacos/conf/application.properties /opt/nacos/conf/
docker rm tmp-nacos

编辑配置文件

vim /opt/nacos/conf/application.properties

新增或者确认以下内容

# 开启鉴权
nacos.core.auth.enabled=true

# 使用内置鉴权插件
nacos.core.auth.system.type=nacos

# 启用登录
nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos

# JWT secret(必须) nacos.core.auth.plugin.nacos.token.secret.key=yJ7qf9Y2Q3HcR9bQyT0zFQv8y1Zc+P7nX8v7d8kKk3M=

⬆️ JWT secret(必须)

“开启 Auth ” 后,需要 配置符合要求的 JWT secret

生成一个合规的 JWT secret(强烈推荐)

在宿主机执行:

openssl rand -base64 32


#输出结果,解码后 32 字节⬇️
ntdctb9H0xxdv7OXWFnOkzK70Bfbj1myVN69NNm3oGI=

重启容器

#重启容器
docker restart nacos

配置 外部数据库(MySQL 方式)

略,后续跟进一下

本地环境服务安装

也记录一下不使用 docker 的方式,安装 nacos 的操作;

系统是: centos7

前提需要:项目运行环境需要安装 nacos

在 centos 中进行安装nacos,这里演示安装版本是 1.3.2,

下载地址: https://github.com/alibaba/nacos/releases/tag/1.3.2

nacos 运行需要先安装一下 JDK 环境,注意一下

可以自己点击下载 nacos-server-1.3.2.tar.gz

或者在 Linux系统中下载命令:

wget https://github.com/alibaba/nacos/releases/download/1.3.2/nacos-server-1.3.2.tar.gz

下载完压缩包之后,上传指服务器任意目录,进行解压

 tar -zxvf nacos-server-1.3.2.tar.gz

解压后会生成 nacos 文件夹,进入到 nacos 目录,输入命令启动(以单机的形式启动)

bin/startup.sh -m standalone

如果需要持久化 配置到mysql,则调整nacos的配置

如果你的服务器开了防火墙,则需要开放相应的端口

#开放端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent 
# 重启防火墙 
firewall-cmd --reload
# 查看开放的端口列表 
firewall-cmd --list-port

nacos默认的启动端口是 8848,访问 http://ip:端口/nacos 即可看到登录页面.默认的用户名密码是 nacos/naocs,登录即可使用